// 导入登录接口
import { loginAPI, userInfoAPI } from '@/api/user'
import { Toast } from 'vant'
import router from '@/router'
export default {
  namespaced: true,
  state () {
    return {
      tokenObj: {},
      // 用来保存获取的用户信息
      userInfo: {}
    }
  },
  mutations: {
    setToken (state, obj) {
      state.tokenObj = obj
    },
    setUserInfo (state, obj) {
      state.userInfo = obj
    },
    loginOut (state) {
      state.tokenObj = {}
      state.userInfo = {}
      router.push('/login')
    }
  },
  actions: {
    async login (ctx, info) {
      try {
        const res = await loginAPI({
          mobile: info.mobile,
          code: info.code
        })
        // 调用mutations的方法存到vuex
        ctx.commit('setToken', res.data)
        Toast.success('登录成功')
        // 跳转,判断之前有没有参数(是不是从别的页面打回的)
        if (info.back) {
          // 有参数 就跳转到之前的页面
          router.push(info.back)
        } else {
          // 没有参数 跳转到首页
          router.push('/layout/home')
        }
      } catch (error) {
        Toast.fail('登录失败')
      }
    },
    // 发请求获取用户信息
    async reqUserInfo (ctx) {
      // 判断一进入页面没有数据的话 就发送请求
      if (!ctx.state.userInfo.name) {
        const res = await userInfoAPI()
        // console.log(res)
        ctx.commit('setUserInfo', res.data)
      }
    }
  }
}
